package com.onedec.entity;

import java.util.ArrayList;
import java.util.List;

public class OnedecAccountExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OnedecAccountExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAccountIdIsNull() {
            addCriterion("account_id is null");
            return (Criteria) this;
        }

        public Criteria andAccountIdIsNotNull() {
            addCriterion("account_id is not null");
            return (Criteria) this;
        }

        public Criteria andAccountIdEqualTo(Integer value) {
            addCriterion("account_id =", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotEqualTo(Integer value) {
            addCriterion("account_id <>", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdGreaterThan(Integer value) {
            addCriterion("account_id >", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("account_id >=", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdLessThan(Integer value) {
            addCriterion("account_id <", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdLessThanOrEqualTo(Integer value) {
            addCriterion("account_id <=", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdIn(List<Integer> values) {
            addCriterion("account_id in", values, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotIn(List<Integer> values) {
            addCriterion("account_id not in", values, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdBetween(Integer value1, Integer value2) {
            addCriterion("account_id between", value1, value2, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotBetween(Integer value1, Integer value2) {
            addCriterion("account_id not between", value1, value2, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumIsNull() {
            addCriterion("account_serial_num is null");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumIsNotNull() {
            addCriterion("account_serial_num is not null");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumEqualTo(String value) {
            addCriterion("account_serial_num =", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumNotEqualTo(String value) {
            addCriterion("account_serial_num <>", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumGreaterThan(String value) {
            addCriterion("account_serial_num >", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumGreaterThanOrEqualTo(String value) {
            addCriterion("account_serial_num >=", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumLessThan(String value) {
            addCriterion("account_serial_num <", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumLessThanOrEqualTo(String value) {
            addCriterion("account_serial_num <=", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumLike(String value) {
            addCriterion("account_serial_num like", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumNotLike(String value) {
            addCriterion("account_serial_num not like", value, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumIn(List<String> values) {
            addCriterion("account_serial_num in", values, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumNotIn(List<String> values) {
            addCriterion("account_serial_num not in", values, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumBetween(String value1, String value2) {
            addCriterion("account_serial_num between", value1, value2, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountSerialNumNotBetween(String value1, String value2) {
            addCriterion("account_serial_num not between", value1, value2, "accountSerialNum");
            return (Criteria) this;
        }

        public Criteria andAccountTotalIsNull() {
            addCriterion("account_total is null");
            return (Criteria) this;
        }

        public Criteria andAccountTotalIsNotNull() {
            addCriterion("account_total is not null");
            return (Criteria) this;
        }

        public Criteria andAccountTotalEqualTo(Double value) {
            addCriterion("account_total =", value, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalNotEqualTo(Double value) {
            addCriterion("account_total <>", value, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalGreaterThan(Double value) {
            addCriterion("account_total >", value, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalGreaterThanOrEqualTo(Double value) {
            addCriterion("account_total >=", value, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalLessThan(Double value) {
            addCriterion("account_total <", value, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalLessThanOrEqualTo(Double value) {
            addCriterion("account_total <=", value, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalIn(List<Double> values) {
            addCriterion("account_total in", values, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalNotIn(List<Double> values) {
            addCriterion("account_total not in", values, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalBetween(Double value1, Double value2) {
            addCriterion("account_total between", value1, value2, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountTotalNotBetween(Double value1, Double value2) {
            addCriterion("account_total not between", value1, value2, "accountTotal");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdIsNull() {
            addCriterion("account_project_id is null");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdIsNotNull() {
            addCriterion("account_project_id is not null");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdEqualTo(Integer value) {
            addCriterion("account_project_id =", value, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdNotEqualTo(Integer value) {
            addCriterion("account_project_id <>", value, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdGreaterThan(Integer value) {
            addCriterion("account_project_id >", value, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("account_project_id >=", value, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdLessThan(Integer value) {
            addCriterion("account_project_id <", value, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdLessThanOrEqualTo(Integer value) {
            addCriterion("account_project_id <=", value, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdIn(List<Integer> values) {
            addCriterion("account_project_id in", values, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdNotIn(List<Integer> values) {
            addCriterion("account_project_id not in", values, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdBetween(Integer value1, Integer value2) {
            addCriterion("account_project_id between", value1, value2, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountProjectIdNotBetween(Integer value1, Integer value2) {
            addCriterion("account_project_id not between", value1, value2, "accountProjectId");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumIsNull() {
            addCriterion("account_operation_num is null");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumIsNotNull() {
            addCriterion("account_operation_num is not null");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumEqualTo(Integer value) {
            addCriterion("account_operation_num =", value, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumNotEqualTo(Integer value) {
            addCriterion("account_operation_num <>", value, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumGreaterThan(Integer value) {
            addCriterion("account_operation_num >", value, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("account_operation_num >=", value, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumLessThan(Integer value) {
            addCriterion("account_operation_num <", value, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumLessThanOrEqualTo(Integer value) {
            addCriterion("account_operation_num <=", value, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumIn(List<Integer> values) {
            addCriterion("account_operation_num in", values, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumNotIn(List<Integer> values) {
            addCriterion("account_operation_num not in", values, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumBetween(Integer value1, Integer value2) {
            addCriterion("account_operation_num between", value1, value2, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountOperationNumNotBetween(Integer value1, Integer value2) {
            addCriterion("account_operation_num not between", value1, value2, "accountOperationNum");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkIsNull() {
            addCriterion("account_remark is null");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkIsNotNull() {
            addCriterion("account_remark is not null");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkEqualTo(String value) {
            addCriterion("account_remark =", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkNotEqualTo(String value) {
            addCriterion("account_remark <>", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkGreaterThan(String value) {
            addCriterion("account_remark >", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("account_remark >=", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkLessThan(String value) {
            addCriterion("account_remark <", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkLessThanOrEqualTo(String value) {
            addCriterion("account_remark <=", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkLike(String value) {
            addCriterion("account_remark like", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkNotLike(String value) {
            addCriterion("account_remark not like", value, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkIn(List<String> values) {
            addCriterion("account_remark in", values, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkNotIn(List<String> values) {
            addCriterion("account_remark not in", values, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkBetween(String value1, String value2) {
            addCriterion("account_remark between", value1, value2, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountRemarkNotBetween(String value1, String value2) {
            addCriterion("account_remark not between", value1, value2, "accountRemark");
            return (Criteria) this;
        }

        public Criteria andAccountBak1IsNull() {
            addCriterion("account_bak1 is null");
            return (Criteria) this;
        }

        public Criteria andAccountBak1IsNotNull() {
            addCriterion("account_bak1 is not null");
            return (Criteria) this;
        }

        public Criteria andAccountBak1EqualTo(String value) {
            addCriterion("account_bak1 =", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1NotEqualTo(String value) {
            addCriterion("account_bak1 <>", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1GreaterThan(String value) {
            addCriterion("account_bak1 >", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1GreaterThanOrEqualTo(String value) {
            addCriterion("account_bak1 >=", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1LessThan(String value) {
            addCriterion("account_bak1 <", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1LessThanOrEqualTo(String value) {
            addCriterion("account_bak1 <=", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1Like(String value) {
            addCriterion("account_bak1 like", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1NotLike(String value) {
            addCriterion("account_bak1 not like", value, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1In(List<String> values) {
            addCriterion("account_bak1 in", values, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1NotIn(List<String> values) {
            addCriterion("account_bak1 not in", values, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1Between(String value1, String value2) {
            addCriterion("account_bak1 between", value1, value2, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak1NotBetween(String value1, String value2) {
            addCriterion("account_bak1 not between", value1, value2, "accountBak1");
            return (Criteria) this;
        }

        public Criteria andAccountBak2IsNull() {
            addCriterion("account_bak2 is null");
            return (Criteria) this;
        }

        public Criteria andAccountBak2IsNotNull() {
            addCriterion("account_bak2 is not null");
            return (Criteria) this;
        }

        public Criteria andAccountBak2EqualTo(String value) {
            addCriterion("account_bak2 =", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2NotEqualTo(String value) {
            addCriterion("account_bak2 <>", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2GreaterThan(String value) {
            addCriterion("account_bak2 >", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2GreaterThanOrEqualTo(String value) {
            addCriterion("account_bak2 >=", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2LessThan(String value) {
            addCriterion("account_bak2 <", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2LessThanOrEqualTo(String value) {
            addCriterion("account_bak2 <=", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2Like(String value) {
            addCriterion("account_bak2 like", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2NotLike(String value) {
            addCriterion("account_bak2 not like", value, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2In(List<String> values) {
            addCriterion("account_bak2 in", values, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2NotIn(List<String> values) {
            addCriterion("account_bak2 not in", values, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2Between(String value1, String value2) {
            addCriterion("account_bak2 between", value1, value2, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak2NotBetween(String value1, String value2) {
            addCriterion("account_bak2 not between", value1, value2, "accountBak2");
            return (Criteria) this;
        }

        public Criteria andAccountBak3IsNull() {
            addCriterion("account_bak3 is null");
            return (Criteria) this;
        }

        public Criteria andAccountBak3IsNotNull() {
            addCriterion("account_bak3 is not null");
            return (Criteria) this;
        }

        public Criteria andAccountBak3EqualTo(String value) {
            addCriterion("account_bak3 =", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3NotEqualTo(String value) {
            addCriterion("account_bak3 <>", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3GreaterThan(String value) {
            addCriterion("account_bak3 >", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3GreaterThanOrEqualTo(String value) {
            addCriterion("account_bak3 >=", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3LessThan(String value) {
            addCriterion("account_bak3 <", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3LessThanOrEqualTo(String value) {
            addCriterion("account_bak3 <=", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3Like(String value) {
            addCriterion("account_bak3 like", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3NotLike(String value) {
            addCriterion("account_bak3 not like", value, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3In(List<String> values) {
            addCriterion("account_bak3 in", values, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3NotIn(List<String> values) {
            addCriterion("account_bak3 not in", values, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3Between(String value1, String value2) {
            addCriterion("account_bak3 between", value1, value2, "accountBak3");
            return (Criteria) this;
        }

        public Criteria andAccountBak3NotBetween(String value1, String value2) {
            addCriterion("account_bak3 not between", value1, value2, "accountBak3");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}